package top.ffhome.common.service;

import java.util.List;

import top.ffhome.common.entity.IdEntity;
import top.ffhome.common.page.PageRequest;
import top.ffhome.common.page.PageResult;

/**
 * Service基类
 */
public interface BaseService<T extends IdEntity> {
	/**
	 * 根据ID取得对象
	 * 
	 * @param id
	 * @return
	 */
	T get(Long id);

	/**
	 * 新增功能，成功增加后自动生成ID
	 * 
	 * @param entity
	 */
	int insert(T entity);

	/**
	 * 修改功能
	 * 
	 * @param entity
	 */
	int update(T entity);

	/**
	 * 删除功能
	 * 
	 * @param id
	 */
	int delete(Long id);

	/**
	 * 删除功能
	 * 
	 * @param ids
	 */
	int delete(List<Long> ids);

	/**
	 * 查询功能
	 * 
	 * @param orderBy
	 *            排序方式，如"id asc"
	 * @param dto
	 *            查询条件
	 * @return
	 */
	List<T> select(T dto);

	/**
	 * 分页查询功能
	 * @param request
	 * @return
	 */
	PageResult<T> select(PageRequest request);
}
